package com.davidlife.javaee.jdbc.jdbcpool.c3p0;

import com.mchange.v2.c3p0.ComboPooledDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

/*
* C3P0：数据库连接池技术
    * 步骤：
        1. 导入jar包：c3p0-0.9.5.2.jar、mchange-commons-java-0.2.12.jar(当然还要导入mysql的驱动包mysql-connector-java-5.1.37-bin.jar)
        2. 定义配置文件（当然也可以在代码中硬编码数据库连接信息及连接池配置信息等，但一般都采用配置的方式）：
            * 名称：c3p0.properties 或 c3p0-config.xml
            * 路径：将文件放在classpath中，如直接放在src目录下即可（然后程序就会自动加载叫c3p0.properties或c3p0-config.xml的配置文件）
        3. 创建核心对象，数据库连接池对象，ComboPooledDataSource
        4. 获取连接：getConnecttion

 */
public class C3p0Demo {
    public static void main(String[] args) throws SQLException {
        //获取DataSource，使用默认配置
        DataSource ds = new ComboPooledDataSource();
        //获取DataSource，使用指定名称配置
        //DataSource ds = new ComboPooledDataSource("otherc3p0");

        //获取连接
        Connection conn = ds.getConnection();
        System.out.println(conn);

        //......

        conn.close();//这里是从连接池获取的connection，所以不会真的关闭connection，而是将他归还给连接池
    }
}
